/* 
封装一个ajax函数
1.参数:url
2.返回:Promise
说明:只能发GET请求,通过url来指定params或query参数
*/


function ajax(url){
    //返回primose
    return new Promise((resolve,reject)=>{
        // 创建xhr对象
        const xhr = new XMLHttpRequest()
        // 打开连接(设置请求信息)
        xhr.open('GET',url)
        //绑定监听
        xhr.onreadystatechange = ()=>{
            //请求完成后继续处理
            if(xhr.readyState === 4){
                //如果请求成功 => 将Promise变为成功的
                if(xhr.status>=200 &&xhr.status<=299){
                    //将响应体json解析为js对象,指定为成功的value
                    resolve(JSON.parse(xhr.responseText))
                }else{
                    //如果请求失败 =>将promise变为失败的
                    // 创建一个包含错误信息的error对象
                    reject(new Error(`请求失败 status=${xhr.status}`))
                }
            }
        }
        //发送请求
        xhr.send()
    })
}